Networks can be used to interconnect several computers to allow a computer connected to the network to transfer data to another computer attached to the network. FIG. 1 shows an example of a system in which a computer 101 and a computer 103 can transfer data between each other through a network 105. The quality of service (QoS), data losses, and other performance parameters of a network generally depend in part on available network bandwidth of network 105 as it is currently configured. Some network applications are used to estimate the bandwidth available on network 105 during operation so that network 105 can be properly dimensioned to provide the desired performance.
However, some conventional techniques for estimating network available bandwidth consume a significant amount of bandwidth (e.g., packet pair trains), thereby undesirable reducing the amount of bandwidth that could otherwise be used for “real” network traffic. This bandwidth loss can be acceptable in such network dimensioning applications (which are performed relatively infrequently), but unacceptable in other applications. Further, some conventional techniques do not conform to the protocol being used on the network for “real” traffic, which may detrimentally impact network performance. Still further, conventional techniques generally are neither designed nor suitable for accurately tracking network available bandwidth in a network having a relatively quick and complexly changing available bandwidth. Applications that require such bandwidth estimation performance are described below.